/*
 * Creado el 26/02/2008
 *
 */
package ar.pmt.vista.acciones;


import java.io.File;
import java.util.Collection;
import java.util.Iterator;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.springframework.transaction.annotation.Transactional;

import ar.pmt.core.constantes.Constantes;
import ar.pmt.modelo.beans.Peticion;
import ar.pmt.modelo.beans.Proyecto;
import ar.pmt.modelo.businessObject.SrvcControlAvance;
import ar.pmt.vista.utils.Utils;

/**
 * @author guille
 *
 */
public class ImportarPlanificacionAjaxAction extends PMTAction {

    
 
	/**
	 * @param mapping ActionMapping
	 * @param form ActionForm
	 * @param request HttpServletRequest
	 * @param response HttpServletResponse
	 * @return ActionForward
	 * @throws Exception control general de errores de la aplicacion
	 */
	@Transactional
    public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) throws Exception
			 {
    		
    		request.getSession().setAttribute(Constantes.ESTADO_IMPORTACION, Constantes.IMPORTANDO);
    		SrvcControlAvance srvcControlAvance= (SrvcControlAvance)beanFactory.getBean("srvcControlAvance");	
    		Proyecto proyectoSel= srvcControlAvance.obtenerProyecto(new Integer(request.getParameter("proyectoId")));
    		String nombreProyecto=  request.getParameter("nombrePeticion");
    		String nombreArchivo= request.getParameter("archivo");
    		
    		//TODO sacarlo cuando funcione OK
    		//Thread.currentThread().sleep(10000);    		
    		
    		File archivoXml= new File(nombreArchivo);
    		Peticion peticion= (Peticion)beanFactory.getBean("peticion");
    		peticion.setNombre(nombreProyecto);
    		try {
				srvcControlAvance.importarProject(archivoXml, peticion, proyectoSel.getId());
			} catch (Exception e) {
				request.getSession().setAttribute(Constantes.ESTADO_IMPORTACION, Constantes.IMPORTACION_NOK);
				throw e; 
			}
    		request.getSession().setAttribute(Constantes.ESTADO_IMPORTACION, Constantes.IMPORTACION_OK);
 
    	
    		
        return null;
	}
}
